The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also be inventions.
In various conventional storage systems, rotating magnetic media is used. While the density of such rotating media has increased with demand for storage, the mere fact that the system has mechanically moving parts makes the system inherently subject to reliability problems, and inherently slow, slow, at least relative to the speed of moving electrons. Conventional approaches to mitigating the inherent limitations of rotating storage media have included the creation of arrays of redundant independent disks (RAID). Many advances in RAID-related technologies have resulted in a well understood corpus of techniques for RAID that address reliability and speed.
Concurrent with advances in storage subsystems, are advances in the taxonomy of stored items. Whereas traditionally a stored item is viewed by the operating system as just a sequence of blocks of binary data, prescient operating system design considers stored objects as having many more attributes than merely a sequence of blocks of binary data. Of course with a more specific taxonomy of stored items comes additional capabilities (and speed requirements) for the operating system to pre-process data before presenting to a user or to an application. Commercially viable solid-state memory systems based on DRAM, while much faster than rotating media, exhibit another set of limitations, including (depending on the specific technology or techniques employed) volatility and cost.
Meanwhile, trends in manufacturing of certain solid-state memory devices portend higher densities, inherently higher reliability, and higher speeds, while delivering functionality at lower power and lower costs such as NAND flash memory. However, commercially available consumer grade external storage devices have limited storage host attach interfaces (e.g. USB or 1394), and controllers that are typically included with FLASH devices are only very modest in capability.
Even given the viable storage technologies, access and transfer speeds are still far slower than users accept when the aforementioned pre-processing techniques are employed. Moreover in many commercial embodiments, multiple interfaces (especially interfaces of differing types) are preferred.
These and other limitations foster the notion to combine the concepts of object-based storage techniques with high-performance solid-state based storage. Consideration of object-based storage algorithms executing on storage host attach interfaces, together with solid-state memory systems, results in an avalanche of ideas and inventions which are the subject matter of the detailed descriptions of embodiments herein.